System and method of adjusting display characteristics of a displayable data file using an ergonomic computer input device

ABSTRACT

An ergonomic pointing device, such as a mouse, is coupled to a computer having a visual display device. As a user rotates a roller associated with the mouse, the mouse generates computer signals that are interpreted by an operating system and software applications running on the computer. The signals generated by the roller, together with a given software application, can be used for spatial navigation. In spatial navigation, a user rotates the roller to cause the computer and the visual display to increase or decrease magnification levels of the document on the display. Other models of spatial navigation allow the user to activate a roller switch, depress special function keys on a keyboard and/or move the mouse to pant, automatically scroll or manually scroll through the document.

CROSS-REFERENCE TO PRIOR APPLICATION

This application is a divisional of Ser. No. 09/212,898, filed Dec. 16,1998 now U.S. Pat. No. 6,940,488, which is a continuation-in-part andclaims the benefit of the priority of the of application Ser. No.08/881,712 filed Jun. 24, 1997 and now issued as U.S. Pat. No.5,963,197, which is a division of application Ser. No. 08/467,549 whichwas filed Jun. 6, 1995 and is now abandoned, which is a continuation ofapplication Ser. No. 08/178,524 which was filed on Jan. 6, 1994 and isnow issued as U.S. Pat. No. 5,473,344.

TECHNICAL FIELD

The present invention relates to the field of systems and methods forreceiving input signals from computer input devices such as anergonomically designed pointing device and providing such signals asuser commands to a computer to adjust displayable data files such asdocuments.

BACKGROUND OF THE INVENTION

Various computer input devices are currently employed to provide avariety of input signals to computers for certain applications. Forexample, keyboards are an ideal method of inputting alphanumericcharacters to the computer for most applications. Joysticks, often usedwith computer games, provide two-dimensional position signals based onwrist movement. Joysticks provide a particularly intuitive way ofproviding position signals that correspond to movement either within theplane of the computer screen, or movement perpendicular to the plane ofthe computer screen (i.e., virtual movement into and out of the screen).Joysticks, however, are balky and at times awkward, particularly whenused in a business setting.

In contrast, most computer pointing devices, such as mice andtrackballs, are less bulky. Mice and trackballs both include a housingpartially enclosing a rotatable ball and have one or more actuatablebuttons. Electronic encoders sense the rotation of the ball and generatesignals (“counts”) that indicate the ball's rotation. The counts areused to control the magnitude and direction of two-dimensional movementof a cursor or pointer on a display screen of the computer. Such mice,however, provide only two position signals corresponding totwo-dimensional movement.

U.S. Pat. No. 5,298,919 to Chang and U.S. Pat. No. 5,313,230 to Venoliaet al. describe mice capable of providing three-dimensional positionsignals that permit the illusory positioning of the cursor inthree-dimensional space on a two-dimensional video display device. Thepatents describe mouse-input devices having a rotatable ball and athumbwheel for providing input signals representing three-dimensionalmovement.

The devices disclosed by Chang and Venolia et al. teach providing onlythree-dimensional position signals to a computer. As noted, standardmice and trackballs provide only two-dimensional position signals to acomputer. There is a need, however, for a more robust input system forproviding various input signals to a computer to control not onlythree-dimensional positions of an object, but other options orattributes for that object.

Several of such currently available pointing devices for providingmultiple input signals to a computer have disadvantages, however, inthat they are uncomfortable or difficult to use, especially forrelatively long periods of time. This may manifest itself in severalways, for example, the finger or hand of a user may feel tired afteroperating the pointing device for any length of time. Therefore, a needexists for a pointing device for providing multiple input signals to acomputer that is more comfortable and easy to use.

SUMMARY OF THE INVENTION

A U.S. patent application by one of the coinventors entitled “3-D CursorPositioning Device,” Ser. No. 08/467,549, filed Jun. 6, 1995, which is acontinuation of Ser. No. 08/178,524, filed Jan. 6, 1994 (now U.S. Pat.No. 5,473,344), is assigned to the assignee of the present application.This application describes an input device for a computer that has arotatable ball coupled with first and second transducers to producefirst and second signals indicating rotation of the ball as withstandard mice and trackballs. The input device also includes a rollerprotruding from the top or side of the device which is coupled to athird transducer for providing a third signal that indicates rotation ofthe roller. The third signal can be used not only for providing a thirdposition signal, but also can be used to control a non-positionalcharacteristic of an item displayed on a computer's visual display. Thedisplayed item or “video object” can be a cursor, graphic, or otherimage or graphical data represented on the visual display. The first andsecond input signals can be used as standard position signals toposition a cursor on a selected video object, while the roller can berotated to provide the third signal that adjusts a characteristic“appearance” of the video object, such as the size, color, style, font,border, arrangement, brightness, etc. of the object.

The input device of the application is also directed to a system forselecting one of several overlapping windows or “plys.” Typical methodsof selecting one of several overlapping plys requires users to positionthe cursor on the desired ply and clicking the mouse to select that ply.The device in the application is directed to a system that allows thethird signals produced by rotation of the roller to scroll through andselect one of several overlapping plys (i.e., windows), where at leastone of the plys is capable of fully obscuring at least some of the otherplys. Each of the several plys corresponds to a predetermined amount ofrotation of the rotatable roller. A computer is responsive to the thirdsignal to determine a user selected amount of rotation of the roller soas to scroll through and select a visually obscured ply with thepredetermined amount of rotation that corresponds to the user's selectedamount of rotation and thereby display a selected ply.

As explained above, pointing devices typically provide two-dimensionalposition signals to a computer. Certain pointing devices allow three ormore signals to be input to a computer to permit illusory positioning ofa cursor in three-dimensional space on a two-dimensional visual display.The above-described application also describes the third signal tocontrol the non-positional aspect or “appearance” of a selected objectdisplayed on the visual display, or to select one of several overlappingplys.

Improving upon the device and system of the coinventor's priorapplication, a similar user input device such as a mouse is preferablycoupled to a computer having a visual display device. The computer iscapable of displaying a data file such as a word processing document ora spreadsheet document, where the data file has adjustable displaycharacteristics such as size (zoom) or data structure (content). As theuser rotates the roller, the mouse generates roller signals that areinterpreted by the computer. The roller signals, together with a givenapplication, can preferably be used in at least two inventive techniquesfor navigating through a document: “spatial navigation” and “datanavigation.”

There are at least five modes of spatial navigation. In the first mode,a user preferably rotates the roller to cause the computer and displaydevice to adjust the magnification of the data file or document beingdisplayed, and thereby zoom into and out of the document. For example,in a word processing document, a user can rotate the roller in onedirection to zoom out from displaying only a portion of a page of thedocument to displaying several complete pages of the documentsimultaneously on the display device.

In a second spatial navigation mode, the user can rotate the roller ormove the mouse to pan through the document in a selected direction. Thepanning mode is particularly suited for a large two dimensional documentwhose length and width are much greater than the size of the displaydevice. In a third spatial navigation mode, the user can initiallyrotate the roller or move the mouse to cause the document toautomatically and continuously scroll in a direction and at a rate basedupon the initial rotation of the roller or movement of the mouse withoutthe need for additional user input. As a result, the automatic scrollmode frees the user's hands to perform additional tasks.

In a fourth spatial navigation mode, the user can continually rotate theroller to navigate through the document to scroll up or down through alengthy document. In a fifth spatial navigation mode, the user canrotate the roller or move the mouse to scroll through a document usingscroll bars provided in a window display in the document.

Under the data navigation technique, the user can rotate the roller toview differing levels of content or detail with respect to a data filewhenever data is grouped into hierarchical or logical structures Forexample, in a spreadsheet document, the user can rotate the roller tothereby produce signals to the computer, which in turn change thedisplay from daily totals to weekly, monthly, and finally annual totalsduring full rotation of the roller. As a result, by simply rotating theroller, a user can hide or suppress the display of detailed data for agiven document such as a spreadsheet. Actuation of a special functionkey on a keyboard, or actuation of a switch associated with the roller,is preferably used to select between the spatial and data navigationtechniques and between each of the different modes of spatial navigation(as described below).

Overall, the present invention provides the ability to quickly navigatethrough a document by displaying a high-level representation of thedocument on the display device, possibly the entire documentsimultaneously, to locate a desired location in the document, ratherthan having to repeatedly depress page down/page up or cursor movementkeys on a keyboard or using scroll bars in MICROSOFT® WINDOWS®applications. The present invention also provides an ability to movefrom a detailed view of the data or content of a document up to asummary view of the data whenever data can be grouped into higher levelcategories. The present invention is particularly applicable to varioussoftware applications including word processor applications such asMICROSOFT® WORD®, spreadsheet applications such as MICROSOFT® EXCEL®,database applications such as MICROSOFT® ACCESS®, file managementapplications such as MICROSOFT® EXPLORER®, time management applicationssuch as MICROSOFT® SCHEDULE PLUS®, project planning applications such asMICROSOFT® PROJECT®, presentation design and planning applications suchas MICROSOFT® POWER POINT®, and navigation applications for the Internetor other distributed networks such as MICROSOFT® INTERNET EXPLORER®.

In a broad sense, an embodiment of the present invention provides aninformation display and user command input system including a computerand an aggregation of related data having groups of displayable data,each group having an amount of displayable data. The computer has amemory and a visual display device, the computer selectively displayingon the visual display device displayable data of the aggregation of datafor each of the groups of data.

A user command input device is coupled to the computer and has ahousing, and first and second transducers supported by the housing. Theinput device receives user commands indicative of movement in twoorthogonal directions and outputs respective first and second signals tothe computer in response thereto. The user command input device also hasa user actuatable member supported by the housing, capable of beingactuated in only a selected plurality of positions to cause a thirdsignal to be outputted to the computer indicating the user's actuationof the actuatable member to one or more of the discrete positions. Eachgroup of the aggregation of data corresponds to the selected amount ofdiscrete actuation of the actuatable member. The computer is responsiveto the third signal to determine the user selected amount of discreteactuation of the actuatable member and select a group of displayabledata from the aggregation of data that corresponds to the user selectedamount of discrete actuation, and to display the selected group ofdisplayable data on the visual display device.

The present invention also embodies a method of using a 3-dimensionalcomputer input device to display information, the input device beingcoupled to a computer. The computer input device has a switch, arotatable ball, a user actuatable member moveable in opposingdirections, and at least a first transducer. The computer has a visualdisplay device capable of displaying a file, where the file has levelsof displayable data.

The method includes the steps of: (i) moving the actuatable member toonly one of a plurality of discrete positions; (ii) generating a firstcomputer signal from the first transducer indicative of the userselected discrete amount of movement of the actuatable member; (iii)outputting the first computer signal to the computer; (iv) selecting apredetermined level of displayable data for the file based on the firstsignal; and (v) displaying the predetermined level of displayable dataon the visual display device.

The present invention also provides a pointing device that has anergonomic design. The roller or wheel extends above an upper surface ofthe pointing device by a selected amount and is positioned in a frontregion of the pointing device such that a user may rotate and depressthe wheel with an index finger while maintaining the index finger in abiomechanically neutral position.

In a preferred embodiment, a body of the pointing device is configuredin accordance with the teachings of U.S. Pat. No. 5,414,445, to Kanekoet al., which is assigned to the assignee of the present invention. Thetop surface of the body slopes upward from a front end of the pointingdevice to a high point, and slopes downward from the high point to a lowback end, the curvature of the top surface and low back end allowing auser to position their lower palm on a work surface while the user'shand plane is supported by the pointing device.

In addition to the placement and height of the wheel, aspects of anembodiment include the wheel width, profile and material, which acttogether to allow a user to comfortably and accurately actuate thewheel, while maintaining the finger and hand in a biomechanicallyneutral position.

The wheel and associated structure can be configured to provide feedbackto the user, thereby allowing the user to intuitively control thepointing device. The wheel is movable to a number of discrete positions,where movement of the wheel to each location results in a signal beingsent to the computer. By controlling the amount of force and torquerequired to depress and rotate the wheel, and by configuring thestructure associated with movement of the wheel to discrete positions inaccordance with the present invention, inadvertent actuation of thepointing device is reduced, and the user may associate a given motion ofthe wheel with a given result, thereby allowing the user to intuitivelyactuate the wheel.

Overall, the present invention provides a system and method thatintuitively provides visual feedback to a user as the user moves fromsummary-to detail in various data files or aggregations of data such asdocuments. As the user rotates the roller on the mouse (or moves themouse), the user navigates through the document, or through data in thedocument, which is displayed on the display device, so that for aselected amount of rotation of the roller, a selected portion of thedocument is displayed on the display device. The roller provides aparticularly intuitive way for users to navigate into and out of thearea or “space” and data of a document. Other features and advantages ofthe present invention will become apparent from studying the followingdetailed description of the presently preferred embodiment, togetherwith the following drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a partial front isometric, partial block diagram of acomputer system with a mouse-type pointing device provided under thepresent invention.

FIG. 1B is a side elevational view of the mouse of FIG. 1A.

FIG. 1C is a schematic side elevational view of the mouse of FIG. 1A.

FIG. 1D is a side elevational view of a user's hand resting on the mouseof FIG. 1A.

FIG. 2A is a schematic view of internal components of the mouse of FIG.1A.

FIG. 2B is an enlarged, exploded view of a wheel assembly for the mouseof FIG. 2A.

FIG. 2C is an exploded view of an encoder and tactile feedback assemblyfor the wheel assembly of FIG. 2B.

FIG. 2D is a side elevational view of a wheel for the mouse of FIG. 1A.

FIG. 3A is an exploded bottom isometric view of buttons and a tophousing that form a portion of the body of the mouse of FIG. 1A.

FIG. 3B is a schematic front elevational view of the mouse of FIG. 1Ashowing how torque forces can be generated while depressing one of thebuttons of FIG. 3A in a mouse not employing the features of the presentinvention.

FIG. 3C is a schematic front elevational view of the mouse of FIG. 1Ashowing how torque forces are minimized while depressing one of thebuttons of FIG. 3A in the mouse of the present invention.

FIGS. 4A, 4B, and 4C are front views of a visual display device for thecomputer system of FIG. 1A showing spatial navigation (zooming) in aspreadsheet document of a spreadsheet application.

FIG. 5 is a front view of the display device and spreadsheet document ofFIG. 4C showing labels associated with portions of a reduced sizedocument.

FIGS. 6A and 6B are front views of the display device illustrating anability of the computer system of the present invention to rapidly movewithin the spreadsheet document of FIGS. 4A-4C using spatial navigation(zooming).

FIGS. 7A, 7B, 7C, 7D, and 7E are front views of the display deviceshowing data navigation using the present invention in anotherspreadsheet document.

FIGS. 8A, 8B, and 8C are front views of the display device showingspatial navigation (zooming) of the present invention in a wordprocessing document of a word processing application.

FIGS. 9A and 9B are front views of the display device showing analternative embodiment of spatial navigation (zooming) of the presentinvention in another word processing document.

FIGS. 10A and 10B are front views of the display device showing datanavigation of the present invention in the word processing document ofFIGS. 9A-9B.

FIG. 11A is a front view of the display device showing spatialnavigation (panning) of the present invention in a word processingdocument.

FIG. 11B is a front view of the display device showing spatialnavigation (panning) of the present invention in a spreadsheet document.

FIG. 12A is a front view of the display device showing spatialnavigation (automatic scrolling) of the present invention in the wordprocessing document of FIG. 11A.

FIG. 12B is a front view of the display device showing spatialnavigation (scroll bar scrolling) of the present invention in the wordprocessing document of FIG. 11A.

FIG. 13 is a flowchart showing the basic steps performed by the computersystem of FIG. 1A to perform a preferred method of spatial and datanavigation of the present invention.

FIGS. 14A, 14B and 14C are front views of the display device showing avisual user interface for entering commands to adjust parameters of themethod of FIG. 13.

FIG. 15 is a schematic diagram showing variable scroll rate as afunction of distance for spatial navigation of the present invention.

FIG. 16 is a front view of the display device showing an alternativeembodiment of spatial navigation (zooming) of the present invention inthe spreadsheet document of FIGS. 4A-4C.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENT OF THEINVENTION

A system and method of adjusting display characteristics of a documentor data file in a computer system is described. In the followingdescription, numerous specific details are set forth to provide athorough understanding of the present invention, such as mechanicalconstruction and components of a computer input device, certain stepsperformed by the computer system for adjusting display characteristicsof a document, etc. One skilled in the relevant art, however, will findit obvious that the present invention may be practiced without some orall of these specific details. In other instances, well-known structuresand methods are not shown or discussed in detail so that the descriptionof the present invention is not unnecessarily obscured.

Referring to FIG. 1, a computer system 100 of the present inventionincludes a computer input device, illustrated as a mouse 101. The mouse101 generally includes an upper housing 102 and a lower housing 103.Primary and secondary input buttons 104 and 105, respectively, areprovided on the upper housing 102. A roller or wheel 106 projects froman upper surface of the upper housing 102 of the mouse 101, between theprimary and secondary input keys or buttons 104 and 105. The wheel 106can be rotated by a user's finger, as opposed to the user's thumb, ashis or her hand rests upon the upper surface of the upper housing 102.By being rotated by a user's index finger, the wheel 106 provides moreaccurate user input than if the roller were rotated by the user's thumbbecause the index finger is generally more dexterous than the thumb.Additionally, both left- and right-handed users can readily access thewheel 106.

As illustrated in FIG. 1A, a user may rotate the wheel 106 in eitherdirection indicated by reference numeral 107, and may depress wheel 106as indicated by reference numeral 108. As the wheel 106 is rotated anddepressed, signals are generated and transmitted to a computer 109 tocause a selected change in a document, as explained below.

A cord 110, extending from a front end 28 of the mouse 101, couples themouse to the computer 109. The computer 109 includes a visual displaydevice 112 such as a cathode ray tube (“CRT”), active matrix display, orother suitable display device. The display device 112 is capable ofdisplaying a pointer 113 and windows displaying documents, as describedbelow. The computer 109 includes storage or memory 114 and a processor115. A keyboard 116 is coupled to the computer 109.

The upper and lower housings 102 and 103 form a body 117 of the mouse101, which is configured under the teachings of U.S. Pat. No. 5,414,445to Kaneko et al., incorporated herein by reference. As a result, themouse 101 provides support for a user's hand plane when a user positionsa metacarpal-phalangeal joint ridge on a high point 30 of the body 117,and allows a user to grasp and use the mouse 101 while maintaining awrist in a biomechanically neutral position. The wheel 106 is configuredand positioned such that while a user's metacarpal-phalangeal jointridge is resting on the high point 30 of the body 117, the user mayrotate and activate the wheel 106 with a finger, e.g., the index finger,while maintaining the finger in a biomechanically neutral position.Specifically, in this context, a biomechanically neutral position refersto a position that provides access to the wheel 106 without exceeding adesired degree of flexion or range of motion for the finger. Althoughdifferent fingers may be used, the index finger generally provides thegreatest motor control at a fine scale, and the wheel 106 is thereforepositioned to be reached and actuated most effectively by the indexfinger 26 of the user (FIG. 4).

These benefits are achieved in a preferred embodiment of the presentinvention by providing a wheel 106 that extends above an upper surface118 of the upper housing 102 of the mouse 101, preferably by no morethan approximately 0.1 inch, as illustrated in FIG. 1B at referencenumeral 18. As illustrated in FIG. 1C, the upper surface 118 slopesupward from a front end 28 of the pointing device to the high point 30and downwards to a back end 32, the wheel 106 being positioned in aregion 34 extending 41-66 millimeters forward from the high point 30.The wheel 106 is further positioned in a front central region 20 of thebody 117, such that a finger of the user may move from a position ofresting on either of the buttons 102 or 103 to a position of resting onthe wheel 106 without exceeding a range of motion of 22°.

It is believed that the preferred embodiment of the invention describedherein provides an ergonomic pointing device that will accommodate NorthAmerican adult users falling within an ergonomically defined range, froma 5th percentile female to a 95th percentile male. The range is based onhand size, a larger percentage being assigned to a larger hand, and viceversa. This means that the ergonomic pointing device described herein isbelieved to accommodate a group of users ranging from a woman in the 5thpercentile, having a relatively small hand, to a man in the 95thpercentile, having a relatively large hand. It will be appreciated thatusers falling outside this design range may still enjoy advantages fromthe preferred embodiment and that alternate preferred embodiments can bedeveloped for other target user groups (e.g., males with hand sizesabove the 95th percentile) in accordance with the present invention.

Therefore, by providing a pointing device in accordance with a preferredembodiment of the present invention, a user having a hand size thatfalls within a 5th percentile female to a 95th percentile male of NorthAmerican adults may grasp the mouse 101 and actuate the wheel 106 withinan acceptable range of neutral motion for the finger. As illustrated inFIG. 1D, flexion indicates motion of the first phalange 25 towards anupper surface 118 of the mouse body 117, measured relative to areference line 27 at 0° when the first phalange 25 of the index finger26 is aligned with the metacarpal bone 21, and extension indicatesmovement of the first phalange 25 away from the upper surface 118 of themouse body 117 relative to reference line 27. Therefore, in an exemplaryembodiment of the present invention, when the user'smetacarpal-phalangeal joint ridge 38 is resting on the high point 30 ofthe mouse 101, the user may rotate the wheel 106 through it's full rangeof motion with the index finger while keeping the index finger in abiomechanically neutral range of motion of 0°-25° flexion, as indicatedat reference numeral 40. As a result, muscle exertion for the finger,wrist and forearm are minimized, thereby increasing the ease and comfortwith which the mouse 101 can be used.

By minimizing finger flexion and avoiding finger extension in accordancewith a preferred embodiment of the present invention as discussed above,the likelihood of spastic or uncontrollable muscle contraction isreduced, thereby reducing the frequency with which a user mayinadvertently actuate the pointing device. As noted above, a user mayrotate and depress wheel 106, as well as depress the buttons 102 or 103.Inadvertent actuation occurs, for example, when a user intends to rotatethe wheel but inadvertently depresses the wheel, or vice versa, orintends to rotate or depress the wheel and inadvertently depresses oneof the buttons 102 or 103.

In an exemplary embodiment of the present invention, the force requiredto depress the wheel 106 is greater than the downward force created whenrotating the wheel, thereby inhibiting inadvertent actuation betweenrotation and switch depression. It is believed that preferred resultsare achieved when the torque required to rotate the wheel 106 is 40-60gram-centimeters, and the force required to depress the wheel 106 is70-130 grams. These preferred ranges of forces are also within anacceptable range of force for the muscles in the forearm that controlthe index finger, thereby further contributing to the ability to actuatethe wheel 106 without generating unacceptable stress in the finger, handand forearm of the user.

As shown in FIG. 2A, the mouse 101 includes a ball 119 that rests in amiddle portion of the lower housing 103 and protrudes through a hole 120(shown in dashed lines) in the lower surface of the mouse. X and Y axistransducers 121 and 121′, respectively, translating motion to electricalsignals, each include an encoder wheel shaft 122 and an encoder wheel124 axially fixed to an end of each encoder wheel shaft 122. The encoderwheel shafts 122 are oriented perpendicular to each other within thelower housing 103, and adjacent to the ball 119.

A wheel pin 126 and an end pin 127 (both shown in dashed lines) axiallyextend from each encoder wheel shaft 122 into a pair of pin holes,formed in a pair of shaft supports 128, to rotatably receive the encoderwheel shaft. Each pair of shaft supports 128 rotatably retains one ofthe encoder wheel shafts 122. The wheel pin 126 axially extends from theend of the encoder wheel shaft 122 proximal to the encoder wheel 124.The end pin 127 axially extends from the end of the encoder wheel shaft122 distal from the encoder wheel 124.

A spring-biased roller 130 projects upwardly from and is rotatablyretained by the lower housing 103. The spring-biased roller 130 ispositioned opposite to an interior angle formed by the perpendicularlypositioned encoder wheel shafts 122 and biases the ball 119 into contactwith the encoder wheel shafts and toward the interior angle, whileallowing the ball to freely rotate, and cause the encoder wheel shafts122 and the encoder wheels 124 to rotate.

As shown more clearly in FIG. 2B, the wheel 106 consists of a disk 136having an elastomeric covering 137 extending circumferentially aroundthe disk. A pair of pins 138 forming an axle extend axially fromopposite sides of the disk 136. A substantially rectangularcross-section hub 139 extends from one of the pins 138. The pins 138 aresnap-fit into a pair of round apertures 141 formed by two pairs ofupwardly extending fingers 135 formed in a carriage 140. As explainedmore fully below, the carriage 140 is movably retained in position inthe lower housing 103.

A pair of vertically extending flanges 143 protrude from opposite sidesof an encoder enclosure 142, while a pair of vertically extending ribs145 protrude from a side of the carriage 140. A pair of verticallyextending grooves 147 formed in the ribs 145 each receive one of theflanges 143 of the encoder enclosure 142 so that the encoder closure issecurely received by the carriage 140. When so received, an invertedU-shaped slot 161 in the encoder enclosure 142 is axially aligned withthe round apertures 141 of the carriage 140. The flanges 143 preferablyeach have a tapered lower end 143′ to readily allow the encoder closure142 to be slid into the grooves 147 during manufacture.

As shown in FIG. 2C, an outer plate 144, a biased engagement member 146,a tactile feedback disk 148, an encoder ring 150 (affixed to the tactilefeedback disk) and an encoder electrode frame 152 are sandwichedtogether and received within a downward opening aperture in the encoderenclosure 142. These components together form a Z axis transducerassembly, indicated generally by reference numeral 153, that iselectrically and mechanically coupled to a portion 182′ of a printedcircuit board 182 (described below). A flexible web connector 151electrically interconnects the portion 182′ and the Z axis transducerassembly 153 with the printed circuit board 182.

The tactile feedback disk 148 has a number of radially extending detents155 (e.g., eighteen). The detents 155 are equally spaced apart andcircumferentially distributed about the tactile feedback disk 148 toform an equal number of valleys 154 therebetween. A hub 156 extends fromboth sides of the tactile feedback disk 148. The hub 156 has a shoulderdefined by gear teeth 157 on a side toward the outer plate 144, and anaxially formed, generally rectangular receiving aperture 158 sized toreceive and operatively engage the rectangular cross-section hub 139(see FIG. 2B) of the wheel 106 therein. A portion of the hub 156extending beyond the gear teeth 157 freely rotates within a roundaperture 160 formed in the outer plate 144. The round aperture 160 ofthe outer plate 144 is revealed through the U-shaped slot 161 formed inthe encoder enclosure 142. The hub 156 extending from a side of thetactile feedback disk 148 toward the encoder ring 150 passes through anaperture 159 therein, and is received and freely rotates within a roundaperture 163 formed in the encoder electrode frame 152.

The biased engagement member 146 is secured to the outer plate 144, andhas an integrally formed protrusion 162 that extends toward, and isreceived within, the valleys 154, between detents 155 of the tactilefeedback disk 148. In operation, when the wheel 106 is rotated, the pins138 are rotatably supported within the round apertures 141 of thecarriage 140, while the rectangular cross-section hub 139 mates with andcauses the hub 156 to rotate freely within the round aperture 160 of theouter plate 144 and the round aperture 163 of the encoder electrodeframe 152. The spring force of the biased engagement member 146, and theshape of the protrusion 162, valleys 154 and detents 155 force the wheel106 into discrete positions (e.g., eighteen corresponding to eighteenvalleys 154 and detents 155) during rotation of the wheel 106.

Referring back to FIG. 2A, a light-emitting element, such as alight-emitting diode (“LED”) 166, is positioned on one side of eachencoder wheel 124. A light-detecting element, such as a phototransistor168, is positioned opposite each LED 166 on the other side of eachencoder wheel 124. As each encoder wheel 124 rotates, light from the LED166 is alternatively blocked and transmitted through the encoder wheel124 and received by the phototransistor 158 depending on whether one ofseveral notches 125 in the perimeter of the encoder wheel is positionedbetween the LED 166 and phototransistor 158.

A primary switch 170 and a secondary switch 172 are positioned below theprimary input button 110 and the secondary input button 112,respectively (see FIG. 1A), whereby actuation of the primary orsecondary input button results in actuation of the corresponding switch.A roller switch 174 is positioned adjacent to the wheel 106, and can beactuated by slidably depressing the wheel 106 downwardly as describedbelow.

Referring to FIG. 2B, the carriage 140 rests upon a pair of springs 176.A pair of pins 177, extending upwardly from the lower housing 103,extend through and retain a lower portion of the springs 176. Fourvertical guides 178 (having a substantially 45° angular cross-section)extend upwardly from the lower housing 103 to slidably retain fourcorners 140′ of the carriage 140 and thereby flow the carriage toslidably rest upon the springs 162, while restricting movement of thecarriage to sliding movement in a vertical direction. As a result, thewheel 106 can be depressed and the carriage 140 thereby slid downwardlytoward the lower housing 103 of the mouse 101 so that a switchengagement arm 180 extending from the carriage (opposite the encoderenclosure 142) is moved downwardly to actuate the roller switch 174. Inparticular, a lower end portion 179 of the switch engagement arm 180engages and depresses a switch button 181 of the roller switch 174,until a lower surface of a downwardly extending stop portion 183 of theswitch engagement arm engages an upper surface 185 of the roller switch174 to limit downward movement of the switch engagement arm (andtherefore prevent further downward movement of the switch button 181).Without the stop portion 184, the switch button 181 of the roller switch174 might be depressed inwardly too far, causing the button to becomestuck in the downward position.

Additionally, the carriage 140 can be depressed downwardly to actuatethe roller switch 174, while the wheel 106 can substantiallysimultaneously be rotated. Therefore, the user can depress and hold theroller switch 174, thereby generating a switch signal, whilesimultaneously rotating the wheel 106 to generate roller positionsignals or “Z axis signals,” as described below. The above-described70-130 grams of total force required to depress the carriage 140 andactuate the roller switch 174, by being greater than the force requiredto rotate the wheel 106, helps prevent the user from inadvertentlyactuating the switch and concurrently rotating the roller.

Several legs 164, extending downwardly from the carriage 140, restagainst an upper surface of the lower housing 104 when the wheel 106 isfully depressed, to thereby restrict further downward movement of thecarriage. A tab 165, extending outwardly from one of the ribs 145 of thecarriage 140, and an upper surface of one of the pair of fingers 135that are opposite the tab 165, rest against stop members 402 and 404,respectively, of the upper housing 102 (FIG. 3A), to thereby limitupward movement of the roller 106 and carriage 140.

As noted above, the spring force required to depress the carriage 140(generated by the springs 176 and the roller switch 174) should begreater than the downward force applied when rotating the wheel 106(generated by the biased engagement member 146 and the tactile feedbackdisk 148), to inhibit inadvertent activation of the roller switch 174.It will be understood by one of ordinary skill in the art that the forcerequired to depress the wheel is dependent on the characteristics of thesprings 176, the roller switch 174, and the travel distance of theswitch button 181.

The roller switch 174 preferably has a spring force of between 40-75grams, which is required to actuate the switch button 181 of the rollerswitch. The springs 176 together provide a spring force of 30-55 grams.As a result, the overall force required to depress the wheel 106 inwardto actuate the roller switch 174 (the “depression force”) results in theabove-described 70-130 grams of total force required to actuate theswitch.

To provide the 70-130 grams of depression force, it is important that noother components within the mouse 101 add significant additional forcesto this preferred range of forces. To this end, the web connector 151has two transversely extending bends 151′ along its length, of about 90°each, so as to form a flat portion 161 therebetween that isapproximately parallel to the printed circuit board 182. The bends 151′act as hinge lines to allow the web connector 151 to pivot about thebends and thereby freely move upward and downward, without applying anysubstantial additional force to the preferred range of depression forcesrequired to depress the wheel 106. The web connector 151 can also becomprised of a material having high flexibility and limited springforce. By providing the flat portion 161, the web connector 151 not onlyapplies little spring force (e.g., on the order of 0-10 grams), but alsolimits the height of the connector so that the connector can fit withinthe body 117 of the mouse 101 without contacting the underside of theupper housing 102.

To further minimize inadvertent actuation, the detents 155 areconfigured in accordance with an exemplary embodiment of the presentinvention to obtain consistent separation between rotation of the wheel106 (in the directions indicated by line 107) and depressing the wheel106 (in the direction indicated at reference numeral 108). Asillustrated in FIG. 2C, 18 detents 155 are spaced circumferentiallyaround tactile feedback disk 148. In one exemplary embodiment, thetactile feedback disk 148 has a diameter of 0.875 inch. Thecharacteristics of the detents, together with the range of forcesrequired to rotate and depress the wheel, provide a desired “feel” torotating the wheel 106. This “feel” provides tactile feedback to theuser, thereby increasing the accuracy and consistency with which thewheel may be controlled and actuated. Also, by configuring the detentsin this manner, a given amount of play is possible in the movement ofthe wheel between the detents without inadvertently moving the wheel toa consecutive discrete position, thereby also reducing inadvertentrotation of the wheel.

To further ensure accurate and comfortable activation of the wheel 106,an outer edge 38 of the wheel is radiused such that a user may approachthe wheel from either side, i.e., from either of the mouse buttons 104or 105, and rotate and depress the wheel along the outer edge 38. In apreferred embodiment, as illustrated in FIG. 2D, the outer edge 38 has aradius of 0.075-0.2 inch, with acceptable results being achieved whenthe outer edge 38 is defined by three tangent radii 29, 31 and 33,having dimensions of 0.50 inch, 0.125 inch and 0.1875 inch,respectively. As a result, the user has good control of the wheel, butthe wheel is not a source of external trauma to the fingertip pulp. (Thefingertip pulp is the soft tissue around the palmar surface of thedistal phalanges).

In an exemplary embodiment, a width 36 of the wheel is 0.25-0.4 inch,with preferred results being achieved when the wheel width 36 is 0.275inch. Using a dimension in this range, the wheel 106 is in contact withthe user's fingertip pulp while still allowing the user to feel theedges of the wheel. This helps the user properly position his or herfinger on the wheel, which in turn improves the transfer of forces fromthe finger to the wheel.

An outer surface of the wheel is made of an elastomeric material,thereby providing a good contact between the user's finger and the wheel106 so that the user's finger does not slide off the wheel 106 andinadvertently depress one of the buttons 104 and 105. Although a varietyof low-durometer elastomers may be used, such as Santoprene™, applicantsbelieve that preferred results are achieved when the material isKrayton™, at 60 durometer.

By providing a pointing device in accordance with an exemplaryembodiment of the present invention as described above, the mouse 101further provides feedback to a user, allowing the user to intuitivelyuse the pointing device and wheel 106. This feedback is provided by thefeel of the wheel defined by the configuration and spacing of thedetents 155, as well as the force required to move the wheel, from onediscrete position to the next. In an exemplary embodiment, theelectrical signal generated by movement of the wheel 106 from oneposition to another is transmitted when the engagement member 146 is atthe highest point of the detent 155 as it passes over the detent,thereby providing tactile and visual feedback to the user to associate adesired result with a given amount of motion of the wheel 106. The usermay therefore navigate through a document more intuitively, withouthaving to look at the pointing device. In an alternative embodiment,additional feedback is provided by a sound being generated as the wheel106 moves from one discrete position to another.

Returning now to a further discussion of the mechanical aspects of theinvention, as shown in FIG. 2A, the switches 170 and 172 are spacedapart in positions approximately within the front left and right cornersof the lower housing 103, respectively, to accommodate positioning ofthe wheel 106 and carriage 140 therebetween. It is desirable to allow auser to depress the primary or secondary buttons 104 or 105 at anyportion on the upper surface of these buttons (see FIG. 1A), while stillactuating the switches 170 and 172, respectively in response thereto.However, in the prior art, a post typically extends downward from theupper housing 102 to the top of the ball 119 in order to protect theinterior of the mouse 101 from damage due to movement of the ball 119during drop tests and other forcible ball movement. Such a downwardlyextending post, common in current mice, will split a hinge to which thebuttons 104 and 105 are attached, and can affect desired movement of thebuttons 104 and 105 when depressed, as described more fully below. Thus,such a post is not desirable in the present invention. However, theprimary goal of protecting the interior of the mouse from damage isstill desirable.

Referring to FIG. 3A, the primary and secondary buttons 104 and 105 areintegrally formed with a resilient hinge member 406 extending from arearward edge of each of the buttons. The hinge member 406 is receivedthrough an opening 410 in the upper housing 102 and secured thereto bylocking tabs 410 which snap-fit into recesses 412 in the hinge member.When the hinge member 406 is retained by the upper housing 102, and theupper housing is secured to the lower housing 103, a pair ofswitch-actuating plungers 415, one extending downward from each of theprimary and secondary buttons 104 and 105, are positioned overcorresponding ones of the switches 170 and 172 to engage and depress thebuttons to actuate the switches. When the upper and lower housings 102and 103 are secured together, the wheel 106 extends upward through anoval hole 417 formed between the primary and secondary buttons 104 and105 (as shown in FIG. 1A).

A channel 408 extends transversely across the hinge member 406 betweenthe left and right sides thereof to provide an area where the material(e.g., plastic) forming the hinge member is thinner, and therebyprovides a hinge line at which the buttons 104 and 105 pivot whendepressed. The hinge member 406 is resilient and provides an upwardlydirected return force to return the buttons 104 and 105 to theiroriginal position after being depressed. Importantly, a post 413extending downwardly from the upper housing 102 is split longitudinallywith respect to the housing to form left and right post portions 414,with a gap therebetween. The hinge member 406 has left and rightportions 409, each with a resilient, laterally outward primary hingeportion 417 and a resilient, laterally inward secondary hinge portion418 having a hole 416 therebetween sized to receive a corresponding oneof the left and right post portions therethrough when the hinge memberis secured to the upper housing 102. By splitting the downwardlyextending posts 413 into left and right post portions 414, the left andright secondary hinge portions 418 of the hinge member 406 can extendtherebetween and provide an upward return force to the buttons 104 and105 at a laterally inward side thereof to better distribute the returnforce applied by the hinge member 406, as will be described below. Alongitudinally extending space 420 is provided between the left andright secondary hinge portions 418 to isolate the primary and secondarybuttons 104 and 105 so that movement of either button does not causemovement of the other button.

Without the secondary hinge portions 418, the primary button 104 wouldhave an effective longitudinal center line shown as a dashed line 422 inFIG. 3A, which is offset from a true longitudinal center line for thebutton. As a result, referring to FIG. 3B, if a user depressed theprimary button 104 at a laterally inward location 423 that is proximateto the wheel 106, the downward force could provide a torque or twistingforce on the button that could deflect an opposite laterally outwardportion of the button upward and away from the switch 170, therebyfailing to actuate the switch. This would produce a different actuationeffect, and feel to the user, if actuation did occur, that depended onwhere on the button 104 the user applied the force. Such a situation isobviously undesirable.

By providing the secondary hinge portions 418 in addition to the primaryhinge portions 417, the effective longitudinal center line is moved fromline 422 to a dashed line 424 that is approximately a true longitudinalcenter line for the button 104. Additionally, the left and right primaryand secondary hinge portions 417 and 418 provide a longer, transverselyextending, hinge line (formed by the channel 408). As a result,referring FIG. 3C, the increased transverse hinge line and movement ofthe effective longitudinal center line provides a more stable hinge linesubstantially unaffected by torque forces. As such, when the button isdepressed at location 423, the primary button 104 moves downwardly at asubstantially even keel relative to the lower housing 103.

The primary and secondary switches 170 and 172, the roller switch 174,the LEDs 166 and the phototransistors 168 are all mounted on a singleprinted circuit board (the board 182), and coupled by known means toadditional circuitry 184 mounted thereon, as shown in FIG. 2A. Theadditional circuitry 184 includes a microcontroller and other discreteelectronic devices known by those skilled in the relevant art to causethe LEDs 166 to emit light, to cause the phototransistors 168 to producesignals based on the light, to receive the signals, and to convert thesesignals to appropriate computer signals to be output over the cord 114to the computer 109 (see FIG. 1A). Such technology is known to thoseskilled in the art. See, e.g., U.S. Pat. No. 4,464,652 to Lapson et al.,U.S. Pat. No. 4,533,830 to Beauprey, and U.S. Pat. No. 4,562,314 toHosogoe et al. for further information regarding the aspect of the mouse101.

The mouse 101 generates X and Y axis position signals for the computersystem 101 generally in a manner typical of most current mice. Inoperation, the mouse 101 is moved or slid along a planar surface,causing the ball 119 protruding through the hole 120 to rotate. As theball 119 rotates, it rotates the encoder wheel shafts 122 of the X and Yaxis transducers 121 and 121′, which, in turn, rotate the encoder wheels124 fixed thereon. As the encoder wheels 124 rotate, thephototransistors 168 receive pulses of light from the LEDs 166 as thenotches 125 sweep past the LEDs. Each phototransistor 168 converts thesepulses of light into varying electrical signals which are input to theadditional circuitry 184.

While each phototransistor 168 is shown and described generally hereinas a single element, the present invention can use a singlephotodetector package having two phototransistors therein, such as thephotodetector Model No. LTR-5576D, manufactured by LITEON. Consequently,each phototransistor 168 produces two signals or “quadrature signals.”The phototransistor 168 that forms part of the X axis transducer 121produces quadrature signals “XA” and “XB.” The phototransistor 168 thatforms part of the Y axis transducer 121′ produces quadrature signals“YA” and “YB.”

The two phototransistors in each phototransistor 168 are separated by aknown distance whereby one phototransistor in the photodetector ispositioned at one of the notches 125 to receive light from the LED 166,causing the phototransistor to output a “high” signal that isinterpreted by the additional circuitry 184 as a digital “1” quadraturesignal. Conversely, the other phototransistor in the phototransistor 168is blocked by the encoder wheel 124 from receiving light from the LED166 and consequently outputs a “low” signal interpreted as a digital “0”quadrature signal. As a result, the two quadrature signals output fromthe phototransistor 168 produce signals that are out of phase. Theadditional circuitry 184, namely the microcontroller, senses transitionsbetween digital “0” and “1” input signals or levels in the twoquadrature signals. Based on a comparison of these transitions, theadditional circuitry 184 determines the direction in which the mouse isbeing moved. For example, if the quadrature signals XA and X output fromthe phototransistor 168 are “00” followed by “10,” then the additionalcircuitry 184 recognizes that the mouse 101 is being moved in onedirection along the X axis. Conversely, if the quadrature signals XA andXB are “11” followed by “10,” then the additional circuitry 184recognizes that the mouse 101 is being moved in the opposite direction.

The number of transitions between digital “0” and “1” signals detectedby the additional circuitry 184 indicates the magnitude of mouse travel.Together, determination of direction and magnitude of mouse travel arereferred to in the art as quadrature calculation. Quadrature calculationis performed by the additional circuitry 184 using known techniques. Thequadrature calculations convert the quadrature signals into countsignals indicating movement of the mouse 101 along X and Y axes. Thecount signals are either positive or negative, indicating movement ofthe mouse 101 in either a forward or reverse direction along aparticular axis. The host computer 109 converts these counts intomovements of the pointer 113 on the display device 112, as explainedbelow.

Based on the above discussion, the X axis transducer 121 and associatedphototransistor 168 produce XA and XB quadrature signals which areconverted by the additional circuitry 184 into count signals indicatingmovement or position of the mouse 101 along the X axis, referred toherein as “X axis computer signals.” The Y axis transducer 121′ andassociated phototransistor 168 produce YA and YB quadrature signalswhich are converted by the additional circuitry 184 into count signalsindicating movement or position of the mouse 101 along the Y axis,referred to herein as “Y axis computer signals.”

The mouse 101 generates Z axis position signals for the computer system100 in a manner similar to that for generating X and Y axis signals. TheZ axis transducer assembly 153 produces Z axis quadrature signals(including a “ZA” and “ZB” component), which are input to the additionalcircuitry 184. When the user rotates the wheel 106, the tactile feedbackdisk 148 and the encoder ring 150 affixed thereto, rotates. The encoderwheel 150 is formed of an electrically conductive material and hasradially projecting, equally spaced, insulative portions 186 (shown indashed lines) in FIG. 2C. Three brush electrodes 188 secured to theencoder electrode frame 152, alternately conduct and do not conduct asthe insulative portions 186 sweep past the electrodes while the encoderwheel 150 rotates, as is known in the art. As the encoder wheel 150rotates, the brush electrodes 188 produce the Z axis quadrature signalsZA and ZB. The additional circuitry 184 determines the direction andmagnitude of rotation of the wheel 106 from these quadrature signalsusing quadrature calculation, which can be conceptualized as “simulated”mouse travel along the Z axis, thus producing counts indicating thesimulated movement or position of the mouse along the Z axis or “Z axiscomputer signals.”

While the Z axis computer signal is described herein as being producedby the wheel 106 and encoder assembly 153, the present invention mayalso produce the Z axis computer signal by using other electromechanicalmeans. Specifically, the present invention may instead useopto-electronic encoders, a rocker switch, pressure-sensitive switches,joysticks, or other electromechanical switches, with an appropriatetransducer if necessary, known by those skilled in the relevant art.

The X and Y axis computer signals, and the primary and secondary switchsignals are output to the computer 109 by the mouse 101 as threeconsecutive packets or bytes of data. The Z axis computer signals androller switch signals are transmitted to the computer 109 immediatelythereafter as a fourth packet or byte of data. An operating systemrunning on the computer 109, such as WINDOWS 95® manufactured byMicrosoft Corporation, receives and processes the four packets of data.

Under control of the operating system, the computer 109 displays agraphical “user interface” on the display device 112. The operatingsystem logically divides the user interface into one or more windows(such as the window 200 shown in FIG. 4A) that are generated by softwareapplications. In general, each window has a separate window procedureassociated with it. The operating system maintains one or more messagequeues for each software application that generates windows. As theapplication may generate multiple windows, the message queue may holdmessages for multiple windows. When an event occurs, the event istranslated into a message that is put into the message queue for theapplication. The application retrieves and delivers the message to theproper window procedure by executing a block of code known as a “messageloop”. The window procedure that received the message then processes themessage.

When a user positions the pointer 108 with the mouse 101 over a windowand clicks the mouse by depressing one of the mouse buttons 110 or 112,the procedure for the window receives a mouse message. The operatingsystem provides a number of predefined mouse messages. The mousemessages specify the status of primary, secondary and roller switches170, 172 and 174 and the position of the pointer 113 within the window.The position of the pointer 113 within the window is specified in (X, Y)coordinates relative to the upper left-hand cover of the window and isbased on the X and Y axis computer signals from the mouse 101. Thewindow procedure receives the mouse message and utilizes the informationcontained in the message to respond to the mouse activities.

As a result, all software applications operating in conjunction with themouse 101 receive mouse messages from the queue. The mouse messagesinclude messages corresponding to X and Y axis coordinates for thepointer 113, and the status of the primary and secondary switches 170and 172. The mouse messages also include an event message that indicatesan amount of rotation of the wheel 106 by a message “WM_MOUSEWHEEL,”which has the following or equally suitable format:

WM_MOUSEWHEEL zDelta = (INT) wParam; /* wheel rotation */ xPos =LOWORD(IParam); /* horizontal position of pointer 113 */ yPos =HIWORD(IParam); /* vertical position of pointer 113 */The value zDelta is the value of the parameter “wParam,” which indicatesthe rotational distance rotated by the wheel 106 The value wParam isexpressed in multiples or divisions of a constant WHEEL_DELTA such as120. If the value zDelta has a value less than zero, the wheel 106 isrotating away from the front end 28 of the mouse 101, while if it has avalue greater than zero, the roller is rotating toward the frontportion. The variable xPos is the value of the lower order portion ofthe word IParam, which specifies the X axis coordinate of the pointer113. As noted above, the coordinate is relative to the upper-left cornerof the window. The variable yPos is the value of the higher orderportion of the word IParam, which specifies the Y axis coordinate of thepointer 113.

The roller message WM_MOUSEWHEEL is provided by either the operatingsystem running on the computer 109 or a mouse driver routine for themouse 101 that also runs on the computer. The WM_MOUSEWHEEL message isposted in the message queue for the window that is in the foreground(e.g., the active window).

The operating system and any applications running on the computer 109also receive mouse messages posted to the message queue that indicatewhether the roller switch 174 is actuated (“WM_MBUTTONDOWN”) or notactuated (“WM_MBUTTONUP”). The WM_MBUTTONUP and WM_MBUTTONDOWN messagesare posted in the message queue for the window under the pointer 113.The mouse messages indicating the status of the roller switch 174 areposted to the message queue with the following additional data:

WM_MBUTTONUP fwKeys = wParam; // key flags xPos = LOWORD(IParam); //horizontal position of cursor yPos = HIWORD(IParam); // verticalposition of cursor

The parameter fwKeys indicates the status of various keys on thekeyboard or buttons 110 and 112 on the mouse 101. The variable fwKeyscan have any of the following values:

MK_CONTROL Set if the Control key is depressed on the keyboard 116.MK_LBUTTON Set if the primary mouse button 110 is down. MK_RBUTTON Setif the secondary mouse button 112 is down. MK_SHIFT Set if the Shift keyis depressed on the keyboard 116.

As described in more detail below, the computer 109, running itsoperating system and various software applications, employs the X, Y andZ axis computer signals and the primary, secondary and roller switchsignals (based on the windows messages described above) to spatiallynavigate through a document or navigate through the data (content) ofthe document in the application. The present invention will first bedescribed as navigating through a spreadsheet document, and then bedescribed as navigating through a word processing document. Thereafter,the details of the method and other embodiments will be described.

Referring to FIGS. 4A-4C, one mode of spatial navigation, in particular,or adjusting magnification of a document is shown with respect to anexemplary series of spreadsheet documents in a spreadsheet application.As noted above, the computer 109 displays one or more windows, such as awindow 200, on the display device 112. The window 200 contains thevisual output of a particular application running on the computer 109.

Referring to FIG. 4A, the window 200 shows an exemplary spreadsheetdocument 202 at 100% magnification, as reflected in a zoom text box 204.The spreadsheet document of FIG. 4A is produced by the MICROSOFT® EXCEL®spreadsheet application. The spreadsheet document 202 includes row andcolumn designators 206 and 208 along the left side and top,respectively. The pointer 113 is shown in the window 200, and asdescribed above, is controlled by the X and Y axis computer signalsproduced by the mouse 101.

If the user rotates the wheel 106 by one of the detents 155 away fromthe front end 28 of the mouse 101 (FIG. 1A), the mouse generates Z axiscomputer signals for the computer 109 that command the computer to zoomout of or reduce the size of the spreadsheet document 202 displayed inthe window 200 by one increment, such as 15%. The size of thespreadsheet document 202 in FIG. 4B has been reduced to 85%magnification, as reflected in the text box 204. The row and columndesignators 206 and 208 similarly decrease in size. Notably, the sizesof the pointer 113 and the window 200 do not change; only thespreadsheet document 202 displayed within the window changes.

As the user continues to rotate the wheel 106 one or more detents 155(see FIG. 2C) away from the front end 28 (FIG. 1A), magnification of thespreadsheet document 202 continues to decrease. As shown in FIG. 4C, thespreadsheet document 202 has been reduced to 15% magnification, asreflected in the text box 204. Importantly, since the wheel 106 rotatesin discrete intervals (based on the detents 155) and since the tactilefeedback disk 148 provides positive tactile feedback for each detent orincrement, the user intuitively or viscerally knows the number ofdecreases (or increases) in magnification based on his or her rotationof the roller. Since the user can feel each detent 155 as he or sherotates the wheel 106, he or she can count the number of detents, and byknowing the amount of magnification change for each detent, readilydetermine the amount of magnification change for a given rotation of theroller.

At 15% magnification, the entire spreadsheet is visible within thewindow 200, although specific entries within individual cells areillegible. To compensate for illegible cells within the spreadsheetdocument 202, labels are added to portions of the spreadsheet document.For example, an upper left area of cells forming a portion 210 of FIG.4C correspond to weekly allocation figures. Therefore, as shown in FIG.5, a “Weekly Allocation” label 217 is displayed over the portion 210,which can be in a color differing from the color of the data within theportion to improve its visibility. Likewise, portions 212, 214 and 216in FIG. 4C correspond to pricing, budget and education values.Therefore, in FIG. 5, the portions 212, 214 and 216 have correspondinglabels 217 of “Pricing,” “Budgets” and “Education” overlaying suchportions.

By using the labels 217, the user can identify a desired portion of thespreadsheet document 202 based on the labels, even though individualdata cells and words/numbers in the cells within the document areillegible. The user can then move the pointer 113 to the desired portionof the spreadsheet document 202 and select a data cell within thatportion (e.g., by depressing the primary button 110). Thereafter, theuser can rotate the wheel 106 toward the front end 28 of the mouse 101to increase the magnification from 15% (FIGS. 4C and 5) back to 100%(FIG. 4A).

For example, a selected active cell 220 is positioned in FIG. 4A in theupper leftmost cell having column and row address of A,1. The user candecrease the magnification of the spreadsheet document 202 to 85%, asshown in FIG. 4B, in order to view a greater portion of the spreadsheetdocument by rotating the wheel 106 one detent 155 away from the frontend 28. Referring to FIG. 6A, the user can then move the mouse 101,thereby generating X and Y axis computer signals to move the pointer 113to a new location of the spreadsheet document 202. The user selects anew data cell, using known techniques such as depressing the primarybutton 110 to thereby cause the active cell 220 to be located at the newlocation (i.e., a cell having a column and row address of Z,15).Thereafter, the user can rotate the wheel 106 toward the front end 28 toreturn the magnification to 100%, as shown in FIG. 6B.

Importantly, the active cell 220 and the pointer 113 are still at thedesired locations, but the spreadsheet document 202 is more readable atits 100% magnification. Prior to the computer system 100 of the presentinvention, users typically moved throughout a document by using cursormovement keys or page up/down keys on the keyboard 116. Alternately,using the pointer 113, users could manipulate a prior art slider bar orscroll thumb 221 within horizontal or vertical scroll bars 218 and 219displayed in the window 200 that move a document and thereby controlwhich portion of a document were visible in the window 200, as is knownin the art. With the computer system 100 of the present invention, auser can rapidly, spatially move through the spreadsheet document 202without the need of cursor movement keys and page up/down keys on thekeyboard 116, and without using either of the horizontal or verticalscroll bars 218 or 219.

In another navigation embodiment of the present invention, the computersystem 100 provides data navigation through a document by viewingvarious levels of detail in any document containing data that is groupedinto higher-level categories. This embodiment, and all other embodimentsand modes of operation described herein, are substantially similar tothe previously described embodiment, and common elements and steps areidentified by the same reference numbers. Only the significantdifferences in construction, materials or operation are described indetail.

Referring to FIG. 7A, the window 200 contains another spreadsheetdocument 230 that shows a grand total value for “Revenue.” Notably, thewindow 200 shows only row 1 and rows 1267-1289 for the spreadsheetdocument 230. As the user rotates the wheel 106 toward the front end 28by one of the detents 155, preferably while also depressing a specialfunction key such as a shift key on the keyboard 116, the computer 109displays in the window 200 the annual totals from the years 1990-1994that produce the grand total, as shown in FIG. 7B. Notably, only rows 1,254, 507, 760, 1013, and 1266-1284 are shown in window 200 for thespreadsheet document 230. As a result, rotation of the wheel 106 by oneof the detents 155 increases by one level the amount of detail shown inthe window 200 for all of the data hierarchically arranged within thespreadsheet document 230.

The user can select a cell to cause it to be the active cell 220 asbeing, for example, the 1993 revenue total (having column and rowaddress G, 1013). The user then rotates the wheel 106 toward the frontend 28 (by two detents 155) to cause the computer 109 to display twolevels of increasing detail for the data in the spreadsheet document230: the computer first displays monthly totals for the year 1993 (firstdetent 155), and then displays totals for four locations, North, South,East and West (second detent 155), as shown in FIG. 7C. Scrollingupwards (described below) through the monthly totals, the user can thenselect a cell to cause it to be the active cell 220 to be the total forthe West region in January (column and row address of G, 780), as shownin FIG. 7D. Thereafter, the user can rotate the wheel 106 by one moredetent 155 toward the front end 28 to cause the computer 109 to displaythe January 1993 totals for sales of various products and services(“Airplane,” “Helicopter,” “Engine” and “Training”) for the West region,as shown in FIG. 7E.

The series of FIGS. 7A-7E illustrate that as a user rotates the wheel106, he or she can quickly move from viewing the grand total (FIG. 7A)to viewing revenues, by product for a particular region in a particularmonth (FIG. 7E). As a result, the user can view trends, see theorganization of data, and other important information in a spreadsheetdocument by simply rotating the wheel 106 on the mouse 101. In general,data navigation can be used whenever data is grouped into a hierarchicalstructure or into higher level categories, i.e., when a set of data hassubsets of data within itself. By simply rotating the wheel 106, theuser can hide a detail in a document and move to a higher level ofcontent for the document. Rotation of the wheel 106 by each detent 155corresponds to changing and displaying the data for a change in onelevel of the hierarchical structure of the data. Overall, such data andspatial navigation through a spreadsheet document is equally applicableto other documents such as a word processing document produced by a wordprocessing application.

Referring to FIGS. 8A-8C, spatial navigation through an exemplary wordprocessing document 260 produced by MICROSOFT® WORD® word processingapplication is shown. As the user rotates the wheel 106 away from thefront end 28, the magnification of the document 260 changes from 100%(FIG. 8A) to 45% (FIG. 8B), to 15% (FIG. 8C) where approximately sixpages of the document are shown simultaneously within the window 200 onthe display device 112. Each page in FIG. 8C is separated by ahorizontal dotted line. In an alternative embodiment, as shown in FIGS.9A and 9B, the size of another word processing document 270 can bealtered within the window 200 from a magnification of 100% (FIG. 9A) toa magnification of 15% (FIG. 9B) by rotating the wheel 106. Notably, asshown in FIG. 9B, the pages of the document 270 are arranged in a tworow by four column layout to thereby permit a greater number of pages tobe displayed in the window 200 than in the embodiment of FIG. 8C. Witheither embodiment, the user can readily move through the document bymoving the pointer 113 to a desired portion within a reduced size wordprocessing document (FIGS. 8C or 9B), selecting that portion, and thenrotate the wheel 106 toward the front end 28 to increase themagnification back to 100%, but at that desired portion of the document.

Data navigation can similarly be performed in the word processingdocument 270 under the computer system 100. For example, the user canrotate the wheel 106 one detent 155 away from the front end 28 tocommand the computer 109 to change from displaying the detailed text ofthe document 270 (FIG. 9A) on the display device 112, to displaying anoutline of the document, as shown in FIG. 10A. The user can then rotatethe wheel 106 by another detent 155 away from the front end 28 tocommand the computer 109 to change from displaying the outline of thedocument 270 to displaying a collapsed or condensed outline of thedocument, as shown in FIG. 10B.

In addition to spatially navigating through the document by increasingand decreasing the magnification (“zooming”), the computer system 100can provide alternative spatial navigation embodiments or modes, such as(i) panning, (ii) automatic scrolling, (iii) roller scrolling, and (iv)scroll bar scrolling. Each of such alternate spatial navigation modeswill be discussed separately below.

Referring to FIG. 11A, a second alternative embodiment of the presentinvention allows the computer system 100 to readily scroll through adocument such as a word processing document 280 without the need forusing the vertical scroll bar 219. When the user depresses the wheel 106to actuate the roller switch 174, the resulting switch signals commandthe computer 109 to enter into the panning mode. Under the panning mode,the computer 109 initially displays an origin symbol 282 within thewindow 200 at a location where the pointer 113 is located. As shown inFIG. 11A, the origin 282 consists of upward and downward pointingtriangles, which are separated by a dot. The user then moves or slidesthe mouse 101 toward or away from himself or herself while depressingand holding the roller switch 174, causing the ball 119 to rotate andgenerating X and Y axis computer signals that are input to the computer109. In response thereto, the computer 109 moves the pointer 113 in adirection up or down on the display device 112 depending upon thereceived Y axis computer signal. The pointer 113 changes from an arrow,as shown in the previous figures, to a triangle and a dot, the trianglepointing in the direction indicated by the Y axis computer signal. Theword processing document 280 then begins to scroll or pan in theindicated direction and continues to so pan until the user releases thewheel 106 and thus releases the roller switch 174.

For example, if the user moved the mouse toward himself, then thepointer 113 becomes a downward pointing triangle having a dot above it,as shown in FIG. 11A. The word processing document 280 then begins topan downward in the direction of the downward pointing pointer 113. Thespeed at which the word processing document 280 pans downward can beexponentially proportional to the distance between the origin 282 andthe pointer 113, as described in more detail below. If the user thenmoves the mouse 101 away from themselves, the pointer 113 returns to aposition closer to the origin 282, which causes the rate of panning todecrease. As a result, a user can depress and hold the wheel 106 toactuate the roller switch 174, and move the mouse 101 in the desireddirection in which he or she desires the document to scroll, to therebypan the document in the desired direction, without relying on thevertical scroll bar 219. Additionally, the user can adjust the rate atwhich the document pans within the window 200 by moving the mouse 101,and thereby moving the pointer 113 closer and farther from the origin282.

The panning mode of spatial navigation is similarly applicable to otherapplications, such as spreadsheet applications. Referring to FIG. 11B,the spreadsheet document 202 has a large two-dimensional area, andtherefore, the panning mode is expanded to allow panning to occur notonly in vertical, but also horizontal and diagonal directions. As aresult, the origin 282 in the spreadsheet document 202 includes left andright facing triangles, as well as the upward and downward facingtriangles. The computer 109 analyzes the X and Y axis computer signalsto determine and initial panning direction based on movement of themouse 101. By analyzing both the X and Y axis computer signals, thecomputer 109 allows the spreadsheet document 202 to scroll in upward,downward, left and right, as well as in diagonal directions based onsuch signals. Therefore, as shown in FIG. 11B, as the user moves themouse 101 in a direction toward himself and rightward, the pointer 113becomes a triangle pointing downward and rightward, or “southeast.” Thespreadsheet document 202 then begins to pan in the southeast direction.The panning rate is dependent upon the distance between the pointer 113and the origin 282. The spreadsheet document 202 continues to pan untilthe user releases the wheel 106 and deactuates the roller switch 174.

Referring to FIG. 12A, the automatic scrolling mode of spatialnavigation can be initiated when the user depresses and releases thewheel 106 which briefly actuates or “clicks” the roller switch 174. Inresponse to clicking the roller switch 174, the computer 109 displays avertical scroll bar 219′ that has a marking or origin 284 centrallypositioned along the length of the scroll bar. The pointer 113 is alsomoved and positioned over or adjacent the origin 284 within the verticalscroll bar 219′. The user then moves the mouse 101 to thereby generate Yaxis computer signals to move the pointer 113 within the vertical scrollbar 219′. Movement of the pointer 113 downward from the origin 284causes the word processing document 280 in FIG. 12A to scroll upwardwithin the window 200, and vice versa.

As in the panning mode, the farther the pointer 113 is from the centerorigin 284, the faster the word processing document 280 automaticallyand continuously scrolls upward or downward depending upon whether thepointer 113 is moved above or below the origin 284. The computer 109 canalso shade the background of the vertical scroll bar 219′ in decreasinglevels of color or gray both upward and downward from the origin 284.The gradations of color or shade thereby allow a user to more accuratelyposition the pointer 113 at a location in the vertical scroll bar 219′,and thereby achieved a desired speed of automatic scrolling, than if nosuch shading were present.

The panning mode of spatial navigation allows a user, by simplyactuating the roller switch 174 once, and moving the mouse 101 in aninitially intended scrolling direction, to establish an automatic andcontinuous scroll rate at which they can continuously read a documentthat scrolls upward (or downward) within the window 200. No additionaluser input is required once the automatic scrolling mode is initiated bythe computer 109, and therefore, the user can perform other tasks withhis or her hands by reading a document. As a result, the automaticscrolling mode can be referred to as an “automatic reading mode.”

The automatic scrolling mode is terminated when the user depresses anykey on the keyboard 107 or button such as the primary or secondarybutton 110 or 112 on the mouse 101. The speed can be adjusted by movingthe mouse 101. When the user moves the mouse 101 in the reversedirection so that the pointer 113 returns to the origin 284, thecontinuous scrolling speed is returned to zero. The automatic scrollmode embodiment can be particularly useful for handicapped users.

The automatic scrolling mode can be applied to other documents such asspreadsheet documents. Within a spreadsheet document, while not shown,the automatic scrolling mode allows a user to automatically andcontinuously scroll either vertically or horizontally, depending uponthe movement of the mouse 101 from the origin 284. Within a spreadsheetdocument, both the horizontal and vertical scroll bars 218 and 219include the origin 284.

In a “manual” scrolling mode of spatial navigation (“roller scrolling”),the user can rotate the wheel 106 to scroll through a document wherebyeach detent 155 corresponds to, for example, two lines of text for aword processing document. Therefore, referring back to FIG. 9A, the usercan rotate the roller toward the front end 28 and cause two lines oftext in the word processing document 280 to scroll upward and be visibleat the bottom in the window 200 for each detent 155. As a result, theuser need not use the cursor movement keys or page up/down keys on thekeyboard 116, or the vertical scroll bar 219. Additionally, the pointer113 remains in its current location (assuming that the user does notmove the mouse 101 as he or she rotates the wheel 106).

Referring now to FIG. 12B, the scroll bar mode allows the user todepress the wheel 106 while depressing the control key on the keyboard116 to scroll through a document using the horizontal and verticalscroll bars 218 and 219. After depressing and holding the wheel 106 andthe control key on the keyboard 116, whenever the user moves the mouse101 in an intended scrolling direction, the corresponding scroll barthumb 221 in the horizontal or vertical scroll bar 218 or 219 moves in amanner corresponding to movement of the mouse. Therefore, if the userdepresses the wheel 106, depresses the control key and then moves themouse 101 downward (toward the user), the pointer 113 jumps to thescroll thumb 221 in the vertical scroll bar 219 and the scroll thumbmoves downward. The word processing document 280, in response thereto,scrolls upward. After the user releases the control key, the pointer 113jumps back to a position that it originally had within the window 200before the scroll bar mode was initiated. While shown in FIG. 12B, thewindow 200 need not display the horizontal and vertical scroll bars 218and 219 during the scroll bar mode of spatial navigation.

Referring to FIG. 13, a flowchart diagram illustrates the main stepscarried out under a routine 300 of the present invention for navigatingthrough a word processing document in a word processing application.Based on FIG. 13 and the detailed description provided herein, thoseskilled in the art can readily construct source code for performing thepresent invention. Additionally, those skilled in the art can readilyadapt and incorporate the routine shown in FIG. 13 for other computersoftware applications, such as spreadsheet applications, presentationapplications, time management applications, etc.

The routine 300 begins in step 302 where the computer 109 determineswhether the roller switch 174 is activated. If the roller switch 174 isnot activated, then in step 304, the computer 109 determines whether thewheel 106 has rotated, and therefore whether Z axis computer signalshave been received by the computer. If they have not been received, thenstep 304 loops back to step 302. When Z axis computer signals arereceived, then in step 306, the computer 109 gathers the Z axis signalsto determine an amount and direction of rotation of the wheel 106 as isdescribed above.

In step 308, the computer 109 determines if the shift key is depressedon the keyboard 116. If the shift key is depressed, then in step 310,the computer 109 enters into the data navigation mode described above.The computer 109 determines an amount or level of the document's data(content) to display on the display device 112 based on an amount anddirection of rotation of the wheel 106. In other words, the computer 109determines how many detents 155 the wheel 106 has rotated and therefromdetermines the number of levels to show or suppress for the hierarchicaldata structure of the document.

If the shift key were not depressed on the keyboard 116 in step 308,then in step 312, the computer 109 determines whether the control key isdepressed on the keyboard 116. If the control key on the keyboard 116 isnot depressed in step 312, then in step 314 the computer 109 enters intothe scroll mode. The computer 109 scrolls the word processing documentupward or downward within the window 200 based on an amount anddirection of rotation of the wheel 106.

If the control key on the keyboard 116 is depressed in step 312, then instep 316 the computer 109 enters one of the spatial navigation modes anddetermines an amount of magnification (zoom) based on the amount anddirection of rotation of the wheel 106. Thereafter, the computer 109 instep 318 determines whether the document will be legible on the displaydevice 112. If the document will be legible, then in step 320, thecomputer 109 retrieves the appropriate data from the memory 114 anddisplays the new size of the document on the display device 112. Forexample, if the current magnification were set at 100% and the userrotated the roller two detents 155 toward the front end 28, then in step316 the computer 109 determined that the user wished the magnificationlevel to increase by two levels (i.e., 30%). In step 318, the computer109 determines that the document will still be legible on the displaydevice 112 (and therefore, no labels 217 are required to be displayedwith the document). Therefore, in step 320, the computer 109 increasedthe magnification of the document by 30% to 130%.

If the document will not be legible in step 318, then in step 322, thecomputer 109 retrieves any appropriate labels for display with thedocument, such as the labels 217 shown in FIG. 5. For example, if thecurrent magnification were set at 100% and the user rotated the rollerfour detents 155 away from the front end 28, then in step 316 thecomputer 109 determined that the user wished the magnification level todecrease by four levels (i.e., 60%). In step 318, the computer 109determines that the document will not be legible on the display device112, and therefore, in step 322 decreases the magnification of thedocument by 60% to 40%, and displays the appropriate labels on portionsof the document. The labels are surrogates of the data contained withinthe document, that is, the labels are higher level constructs thatdescribe illegible data.

In step 322, the computer 109 can also positions the documentappropriately on the display device 112. Therefore, as shown in FIG. 9B,the computer displays multiple pages in an N row by M column layout inthe window 200 when the computer 109 determines that data within thedocument is no longer legible (e.g., at a magnification of below 60%).

The computer 109 in step 322 can perform other adjustments to thedocuments displayed within the window 200 to improve the legibility ofthe document. For example, if the document were a spreadsheet document,and the magnification were reduced below 60%, then the computer 109 cansuppress gridlines within the document (as shown in FIGS. 7A-7E) so thatsuch lines are not visible (as shown in FIG. 4A-4C), if such gridlinesare black. As a result, when the spreadsheet document is reduced belowthe 60% magnification, the gridlines do riot cause the resultingdocument to be depicted as a visually noisy gray area. The computer 109can draw a gray border around formulas shared by various columns or rowsof data in a reduced spreadsheet document, while the computer draws ablack border around named arranges in such document. Borders of tablesand lists in a word processing document can be displayed in a wordprocessing document that has been reduced to a magnification below 60%,but the text within the tables or lists is displayed at only a graylevel tone.

Step 320 also follows step 310, and therefore, the computer 109retrieves the appropriate data from the memory 114 and displays the newcontent for the document on the display device 112. Therefore, followingstep 310, if the wheel 106 were rotated one detent 155 away from thefront end 28, and the window 200 currently displayed the detailed textof the word processing document, then the computer 109 determined instep 310 that the user desired to display the next higher levelorganization of data in the document. Accordingly, in step 320, thecomputer 109 retrieves from the memory 114 (or other storage device) thedetailed outline of the document. In step 320, the computer 109 alsoselects the appropriate portion of the detailed outline to display inthe window 200 if the detailed outline was larger than the size of thewindow 200.

If the roller switch 174 is activated in step 302, then the computer 109determines in step 324 whether the roller switch is being continuallydepressed. If the roller switch 174 is being continually depressed, thenin step 325 the computer 109 determines whether the control key on thekeyboard 116 is depressed. If the control key is not depressed, then instep 326 the computer 109 enters into the panning mode and displays theorigin symbol 282 (FIG. 11A) at the location of the pointer 113 in thewindow 200. In step 328, the computer 109 gathers X and Y axis computersignals based on movement of the mouse 101 and rotation of the ball 119.In step 330, the computer 109 determines a preselected orientation orinitial direction of the mouse 101 based on the X and Y axis computersignals (e.g., downward for the example of FIG. 11A). In step 330, thecomputer 109 continually retrieves appropriate portions of the documentto pan and display on the display device 112, based on the X and Y axiscomputer signals (i.e., the user selected mouse direction). The computer109 also determines the desired panning speed based on a distancebetween the origin 282 and a current position of the pointer 113, asexplained below. Panning continues in step 330 until the user releasesthe roller switch 174.

If the roller switch 174 is not being continually depressed in step 324,then the computer 109 in step 332, gathers X and Y axis computer signalsbased on movement of the mouse 101. Thereafter, in step 336, thecomputer 109 enters into the automatic scroll mode. In step 336, thecomputer 109 continually retrieves appropriate portions of the documentto scroll and display on the display device 112, based on the X and Yaxis computer signals and the speed. The computer 109 determines thedesired automatic scrolling speed based on a distance between the origin284 and a current position of the pointer 113 in the vertical scroll bar219′ (FIG. 12A) as explained below.

If the roller switch 174 is being continually depressed in step 324 andthe control key is being continually depressed in step 335, then in step338 the computer 109 gathers X and Y axis computer signals based onmovement of the mouse 101. Thereafter, in step 339, the computer 109enters into the scroll bar mode (FIG. 12B). The computer 109 determinesa desired scroll direction for the document and positions the pointer113 on the appropriate scroll bar thumb 221 in the horizontal orvertical scroll bar 218 or 219. The computer 109 then continuallyretrieves appropriate portions of the document to scroll and display onthe display device 112, based on the X and Y computer signals gatheredin step 338 for the position of the pointer 113 and scroll bar thumb221.

The routine 300 can, in steps 328, 332 and/or 338, gather Z axiscomputer signals. Therefore, the computer 109 can determine the desiredspeed and direction for panning, automatic scrolling and scroll barscrolling based on rotation of the wheel 106, rather than movement ofthe mouse 101.

For spatial navigation, the routine 300 in steps 314, 316, 230 and 336,employs or calls known subroutines for moving, scaling and repaintingthe image of the document on the display device 112. For each detent,one or more logically adjacent groups of data, such as lines of pixelsor text, are moved in the scrolling, panning, automatic scrolling andscroll bar scrolling modes. Video processors, video memory, and otherhardware may be employed by the computer 109 to expedite such moving,scaling and repainting of the image of the document on the displaydevice 112.

In step 310 of the routine 300, the computer 109 must determine anamount or level of data of the document to display based on the amountand direction of rotation of the wheel 106. If the pointer 113 hasselected a single item (e.g., a particular data cell in a spreadsheetdocument), and the user rotates the wheel 106 away from the front end28, the routine 300 performs a “Hide Detail” subroutine to hide anylower level detail of the selected item so that only higher level datais displayed on display device 112. High level pseudocode instructionsfor performing the “Hide Detail” subroutine are as follows:

-   -   Hide Detail:        -   if the selected item is the parent of displayed detail, hide            that detail;        -   else if there is an enclosing group for the item (i.e., the            item itself has a parent), hide the detail for the smallest            such enclosing group and move the selection to the parent of            the group being hidden;        -   else noop.            The selected item is a “parent” if it includes detail            associated with that item. In other words, an item is a            parent if it is a set containing subsets of data.

In step 310, if the user rotates the wheel 106 toward the front end 28,the routine 300 in step 310 performs a “show detail” subroutine for theselected item. This “show detail” subroutine reveals and displays on thedisplay device 112 any lower level data associated with the selecteditem. For example, if the item were a parent, the correspondinginformation contained within its set (i.e., its “children”) would bedisplayed. Exemplary high level pseudocode instructions for performingthe “show detail” subroutine are as follows:

-   -   Show Detail:        -   if there is hidden detail belonging to the selected item,            show it;        -   else noop.

The computer system 100 can allow the user to select more than one itemin a document (e.g., several data cells in a spreadsheet document). Formultiple selected items, exemplary high level pseudocode instructionsfor hiding and showing detail are as follows:

-   -   Multiple Item Hide Detail:        -   if any selected item is a parent with displayed detail, then            hide the detail for all the parents selected;        -   else if there is an enclosing group for any selected item,            hide the detail for the lowest enclosing groups for all the            items, considering each item individually, and move the            selection to the parents of the group being hidden;        -   else noop.    -   Multiple Item Show Detail:        -   For each item selected, if there is hidden detail belonging            to it, show it;        -   else noop.

As explained above, the computer system 100 allows users to navigatethrough the area and content of documents in spreadsheet and wordprocessing applications. The computer system 100, however, is applicableto any number of computer applications. For example, the computer system100 can navigate through a series of entries in a calendaring orscheduler program, such as SCHEDULE+®, manufactured by MicrosoftCorporation. In the data navigation mode, rotation of the wheel 106allows the user to move between viewing annual, monthly, weekly, anddaily entries in the user's calendar.

In a presentation application, such as MICROSOFT® POWER POST®, thecomputer system 100 can allow a user to spatially navigate through aseries of slides as is described above for navigating through a seriesof pages in a word processing document. In the data navigation mode, theuser can also navigate through hierarchical arrangements of slides forthe presentation, in a manner similar to that described above for theword processing application. In a file management application, such asMICROSOFT® EXPLORER®, the data navigation mode of the computer system100 can allow the user to move with ease within files and subfiles of acomplex file hierarchy by simply rotating the wheel 106 (possibly whilealso depressing the shift key).

The computer system 100 can also be used in an application, such asMICROSOFT® INTERNET EXPLORER®, for browsing through a massive networkedseries of logically linked documents, such as hypertext linked pages inthe World Wide Web of the Internet. In the data navigation mode, theuser can access through linked hypertext linked documents by rotatingthe wheel 106, and then return to their starting place by reversingrotation of the roller. For example, if the user is currently reading adocument having a hypertext link on a related topic to another document,the user can use the mouse 101 to point to a link and then rotate thewheel 106 and thereby quickly access the linked document to reviewmaterial on the related topic. After reviewing the related topic, theuser can rotate the wheel 106 in the reverse direction to return to theoriginal document.

The computer system 100 can furthermore be used in database applicationssuch as MICROSOFT® ACCESS®. The data navigation mode of the computersystem 100 can allow users to move between detailed and summary reportsof data in a database by simply rotating the wheel 106 (possibly whilealso depressing the shift key). Additionally, users can readily changeviews of joined databases or wherever databases have hierarchicalstructure.

Since various applications have differing navigation needs, thediffering types of spatial navigation (zooming, panning, automaticscrolling, manual scrolling and scroll bar scrolling) can be activatedin differing ways depending upon the application. Table 1 belowsummarizes an exemplary structure for operating the computer system 100with respect to the spreadsheet application EXCEL®, the word processingapplication WORD®, the scheduling application SCHEDULE+®, thepresentation application POWER POINT®, the file managing applicationEXPLORER®, and the Internet navigation application INTERNET EXPLORER®,all manufactured by Microsoft Corporation.

TABLE 1 Power Internet Excel Word Scheduler Point Explorer ExplorerRoller zoom scroll scroll scroll datazoom datazoom Shift key anddatazoom datazoom datazoom datazoom datazoom datazoom roller Control keyzoom zoom zoom zoom zoom zoom and roller Continually pan pan pan pan panpan depress roller switch and drag mouse Click roller continuouscontinuous continuous continuous continuous continuous switch scrollingscrolling scrolling scrolling scrolling scrolling Continuously scrollbar scroll bar scroll bar scroll bar scroll bar scroll bar depressscrolling scrolling scrolling scrolling scrolling scrolling rollerswitch and control keyIn Table 1 above, “zoom” refers to adjusting magnification levels for adocument and “datazoom” refers to data navigation within a document.

The operation of the computer system 100 can have has options orsoftware switches to allow the user to customize various settings.Referring to FIG. 14A, a dialog box 350 displays three options 352, 354and 356 for allowing a user to customize the computer system 100. Thedialog box 350, and other dialog boxes described below, are displayablewithin the window 200, and may be accessed through a menu or selectionof settings within the operating system running on the computer 109.

Under the first option 352, the user can adjust the default setting forthe operation of the wheel 106. As described above and shown in Table 1,the user can enter into the zooming spatial navigation mode bydepressing the control key while rotating the wheel 106. By selectingthe option 352 (positioning the pointer 113 within the small white boxand depressing the primary button 110), the computer system 100 alwaysadjusts the magnification for a given document in the window 200whenever the wheel 106 is rotated, without the need for the user tosimultaneously depress a special function key on the keyboard 116, theroller switch 174, or other switch.

A “settings” button 353 in the first option 352 allows a user to adjustthe setting for the orientation of the wheel 106. Referring to FIG. 14B,a dialog box 360 includes an option 362 that allows the user to changethe default setting for the wheel 106. As described above, when thewheel 106 is moved toward the front end 28 of the mouse 101, thecomputer system 100 shows greater detail under data navigation,increases magnification under zooming, etc., and vice versa. Byselecting the option 362, operation of the wheel 106 is reversed withinthe computer system 100. Therefore, when the option 362 is selected,rolling the wheel 106 away from the front end 28 causes less detail(content) of a document to be displayed in data navigation, themagnification to decrease in zooming, etc., and vice versa.

Referring back to FIG. 14A, in the second option 354, the user canadjust the default setting for actuation of the roller switch 174, fromits default setting as shown in Table 1, to allowing the user to scrollor pan through a document after the roller switch has been clicked. Inthe third option 356, a user can assign a different command to actuationof the roller switch 174, from the default settings of the switch for agiven application as shown in Table 1.

Alternatively, the first and second options 352 and 354 can allow a userto simply enable use of the wheel for a particular function. Therefore,by selecting the first option 352, the user can enable zooming to occurin a given application by rotating the wheel 106. Similarly, byselecting the second option 354, the user can enable scrolling within agiven application after actuating the roller switch 174.

The second option 354 includes a “scroll sensitivity” button 355 thatallows a user to adjust the speed at which automatic scrolling and/orpanning occurs (the “scroll rate”). Referring to FIG. 14C, a dialog box370 includes a slider bar 372 that the user can move with the pointer113 to adjust the scroll rate of the automatic scrolling and panningmodes of spatial navigation.

The scroll rate has three ranges or areas of speed change shownschematically in FIG. 15. Within a first range between the location ofthe origin 282 or origin point O and a point A few pixels away from theorigin point O, the scroll rate is set at zero. Therefore, no scrollingoccurs within a region proximate to the origin 282 (e.g., within 3-10pixels from the dot at the center of the origin). As a result, minormovements of the mouse 101 or the wheel 106 do not cause the document tomove in the window 200.

Within a second range between point A and a point B established at apreselected distance from point A, an established scrolling rate for adocument in a particular application is delayed. Applications (or theoperating system) running on the computer 109 have an established scrollrate for moving a document within the window 200 by way of, for example,the horizontal and vertical scroll bars 218 and 219 (FIG. 11A).Depending upon the speed of the processor 115, the amount of availablememory 114, the complexity of the document and other factors, theestablished scrolling rate for documents vary. However, typicalestablished scrolling rates for a word processing document having onlytext (and not tables or pictures) are between 10 and 15 lines of textper second. At this rate, most users cannot read individual data cells,words or lines of text in a document as they are being scrolled withinthe window 200.

Therefore, in steps 330 and 336 of the routine 300 (FIG. 13), thecomputer 109 applies a delay factor TimePerRow to the established scrollrate of the particular application so that the scroll and panning ratesof document vary from the established scroll rate. The delay factorTimePerRow is a rate at which a given row of pixels are painted anddisplayed on the display device 112. The delay factor TimePerRowdecreases as the pointer 113 moves from point A (origin 282) to point B.An exemplary equation for determining the delay factor TimePerRow is asfollows:

$\begin{matrix}{{TimePerRow} = {\frac{MaxTime}{n^{Exp}}.}} & (1)\end{matrix}$In equation (1), the maximum delay factor MaxTime is a preselectedvalue, such as 100 milliseconds per row of pixels, which is selected asa minimum scrolling rate found acceptable for most people when viewing aslowly scrolling document. The base n for the exponent Exp can have avalue such as 2, while the exponent Exp may be determined from thefollowing equation:

$\begin{matrix}{{Exp} = {\left( \frac{P}{WaitWidth} \right)*{{MaxExp}.}}} & (2)\end{matrix}$In equation (2), P refers to a distance, in pixels, that the pointer 113is from the origin point O (origin 282), using known methods. The valueWaitWidth is a preselected value depending upon the width of the displaydevice 112. The value WaitWidth corresponds to the distance betweenpoints A and B, and therefore corresponds to the second range duringwhich the established scroll rate is delayed. If the display device 112has a width of approximately 800 pixels, then the value WaitWidth isapproximately 200 pixels.

The maximum exponent value MaxExp is computed as follows:MaxExp=log_(n)(MaxTime/MinTime)   (3)where the minimum delay value MinTime is a preselected value such as 4.The minimum delay value MinTime can correspond to approximately theestablished scroll rate in time per horizontal row of pixels. Using theabove values for MaxTime, MinTime and n, the maximum exponent MaxExp hasa value of 4.643856.

Under equation (1) above, the delay factor TimePerRow decreases until adistance of 200 pixels (the value of WaitWidth), at which point thescroll rate is approximately equal to the established scrolling rate forthe particular application and hardware configuration. At point B, theestablished scroll rate continuously scrolls one horizontal line ofpixels at a time at the maximum repaint or display rate for theapplication and hardware in the system 100.

In the third range, between point B and a point C established at apreselected distance from the point B, the established scroll rate forthe application is increased. In other words, the delay factorTimePerRow becomes a multiplicative factor (greater than 1) thatincreases the established scrolling rate. The scroll rate between pointB and point C continuously increase beyond the established scrollingrate for the application, which can require pixel elements to beskipped, i.e., two or more logically adjacent groups or horizontal linesof pixels are repainted at a time. Pixel elements are skipped when thescroll rate is faster than that allowed by the display device 112 andthe computer 109 to paint or refresh lines of pixel elements on thedisplay device. A maximum continuous scroll rate at point C isestablished under equation (1) to be a maximum scroll rate (e.g., oneentire page or window at a time). As the pointer 113 moves past point C,the scroll rate remains fixed at the maximum value occurring at point C.

The present invention has been generally described above as scrollingvertically. The above description of the present invention appliesequally to horizontal scrolling whereby the established scrolling rateis increased or decreased for vertical columns of pixels. Additionally,while the present invention has been generally described above forscrolling, the above-description applies equally to other methods ofnavigation such as panning.

Referring back to FIG. 14C, as the user moves the slider 372 within thedialog box 370, the computer 109 adjusts the distances, in numbers ofpixels, between the points O, A, B and C (FIG. 15). Therefore, as theuser moves the slider 372 toward the “fast” end of the slider scale, thedistance between points O and A decreases from, e.g., 8 pixels to 4pixels. Similarly, the distance between points A and B is reduced from,e.g., 200 pixels to 100 pixels. The distance between points B and C islikewise reduced. As a result, the user need only move the pointer 113 ashort distance from the origin 282 (FIG. 11A) for the document to pan ata rapid scroll rate.

While the present invention has been described above for use with themouse 101 having a wheel 106, the present invention can be applied tousers without a mouse having a roller. Referring to FIG. 16, the window200 showing the spreadsheet document 230 includes a navigation control400 positioned within a tool bar portion 402 of the window. Thenavigation control 400 includes a slider button 404 that can be movedusing a standard mouse under known techniques for manipulating objectsin a window as mentioned above. By moving the slider button 404 leftwardor rightward, magnification of the spreadsheet document 230 decreases orincreases, in a manner similar to rotating the wheel 106 away from andtoward the front end 28, all respectively.

As in the above embodiments, as the user moves the slider button 404,the magnification in the text box 204 correspondingly changes. Clickingthe primary button 110 while the pointer 113 is not on the sliderpointer 404, but to one side of it, causes the slider pointer toincrementally move toward the pointer 113 in 15% magnificationintervals. The special function keys (shift, control, etc.) on thekeyboard 116 can be employed in conjunction with the navigation control400 to provide the other modes of navigation described above (i.e., datanavigation, panning, automatic scrolling, manual scrolling and scrollbar scrolling). A “global” button 406 in the navigation control 400 canbe depressed to jump to a global view of the document (e.g., 15%magnification as shown in FIG. 5).

Aspects of the present invention can also be performed without use ofthe navigation control 400 or the wheel 106. As a result, usersemploying standard two or three button mice (i.e., nice having at leastthe primary and secondary buttons 110 and 112) can perform many of themodes of operation described above. For example, actuating the second orthird button on such standard mice, the user can employ any mode ofnavigation described above that does not require rotation of the roller(e.g., panning, automatic scrolling and scroll bar scrolling).

The present invention has generally been described above as providingdiscrete changes in navigating through a document (e.g., magnificationchanges of 15% per detent 155). Discrete changes in navigating may beused when the speed of the processor 115 and amount of available memory114 is such that continuous changes during navigation are not possibleto show smooth transitions on the display device 112. Additionally, withthe roller 105 such discrete changes provide a particularly intuitiveand visceral method of incrementally navigating through and changing thedisplay of a document in the window 200. However, in an alternativeembodiment, the present invention can be equally applicable tocontinuous changes in navigating. For example, the roller assembly canomit the tactile feedback disk 148 so that the wheel 106 can becontinuously and smoothly rotated, and the routine 300 modified toprovide infinitely adjustable magnification levels of a document. Such acontinuously rotatable wheel 106 provides a particularly intuitivemethod of continuously scrolling or zooming in a document, andcontinuous scrolling can be preferred in many applications such as wordprocessing applications.

In such a continuous navigation embodiment, the routine 300 may employsubroutines that “gravitates” the zooming at a 100% magnification andthe panning, automatic scrolling and other spatial navigation functionsat a zero or no operation value. The gravity subroutines allow the userto more readily return the wheel 106 to the standard 100% magnification,or to a zero scrolling rate. For example, under the zooming mode thesubroutine performed by the routine 300 may operate under the followingvalues.

TABLE 2 Previous zoom (%) New zoom (%) Result (%)  <=60 or >=130 >80 &<120 100   >60 & <=80 >=90 & <=110 100 >=110 & <130   >=90 & <=110 100In such a continuous navigation embodiment, if the user rotates thewheel 106 rapidly, the routine 300 may also perform a rounding functionto establish the new zooming or magnification level based on thefollowing table.

TABLE 3 Difference between previous and new zoom levels (%) Rounding 1to 7  Remains at old zoom level 8 to 30 Nearest 5% >30 Nearest 10%By remaining at the old zoom level when the user moves between 1% and 7%from the old zoom level allows the user to retain the old zoom levelafter he or she has begun to change the level without having toprecisely reposition the wheel 106 at its previous position. The routine300 similarly performs gravity and rounding subroutines for the othernavigation modes described above.

Certain objects within documents are difficult to display, such ascomplex pictures, tables, etc. Therefore, in order to speed the displayof a document as it is being continually changed under one of thenavigation modes, the computer 109 can simply draw the outlines ofcomplex objects. As a result, the computer 109 can rapidly andcontinually change the display of the document until it reaches theintended size or position (e.g., the user ceases rotating the wheel 106at a desired magnification), at which point the objects are then fullydepicted on the display device 112.

U.S. patents and applications cited above are incorporated herein byreference as if set forth in their entirety.

Although specific embodiments of, and examples for, the presentinvention have been described for purposes of illustration, variousmodifications may be made without departing from the spirit and scope ofthe invention, as is known by those skilled in the relevant art. Forexample, although all features of the embodiments described herein arebelieved to contribute to the improved ergonomic results of the presentinvention, modification or omission of an individual feature or featuresmay be made and still gain benefits of the present invention. As anotherexample, while data navigation has been described above as movingbetween a detailed word processing document and a collapsed outline forthe document, the data navigation mode could also be used to showrevision marks, and other changes sequentially made to a document overtime by rotating the wheel 106. Therefore, as the user rotated theroller away from the front end 28, the document would show decreasinglyolder revisions made to that document.

As a further example of modifications that can be made using the presentinvention, while labels 217 have been described above as being appliedto spreadsheet documents, the computer 109 can similarly apply them toword processing documents. Therefore, the computer 109 can applyheadings in an outline to appropriate portions of a document when thedocument's magnification level drops below 60%. Similarly, page numberscan be displayed below the 60% magnification level.

The teachings provided herein of the present invention may be applied toother computer input devices, including trackballs, optical mice or penand tablets where the Z axis computer signal is produced by a rollerprovided on the optical mouse or the pen. These and other changes may bemade to the invention in light of the above detailed description.Accordingly, the invention is not limited by the disclosure, but insteadits scope is to be determined entirely by reference to the followingclaims.

1. A computer readable medium storing instructions which, when executedby a computer, cause the computer to perform a method of displayingdisplayable information on a display device of a computer system runningan application program, the method comprising: the application programreceiving a movement signal indicative of rotational movement of amovable member on a user input device; the application programdisplaying the displayable information within a computer generateddisplay window having a window size at one of a plurality ofmagnification levels; and the application program changing themagnification level at which the displayable information is displayedbased on the movement signal while maintaining the window size of thecomputer generated display window, regardless of movement of a pointeron the display device.
 2. A method of displaying information on adisplay device, the method comprising: storing in an information storedisplayable information; selectively displaying the displayableinformation on the display device within a computer generated displaywindow having a window size at one of a plurality of magnificationlevels; receiving a movement signal, at a controller, indicative ofmovement of a movable member movably coupled to a housing of a userinput device; controlling the display device with the controller tochange the magnification level at which the displayable information isdisplayed based on the movement signal, while maintaining the windowsize of the computer generated display window, regardless of movement ofa pointer on the display device; and wherein receiving the movementsignal at the controller comprises receiving the movement signal as arotation signal indicative of rotation of a wheel rotatably coupled toan upper portion of a housing of the user input device among a pluralityof discrete positions.
 3. The method of claim 2 wherein controlling thedisplay device with the controller comprises controlling the displaydevice to change the magnification level at which the displayableinformation is displayed in a direction based on a direction of rotationof the wheel indicated by the rotation signal.
 4. The method of claim 3wherein controlling the display device with the controller comprisescontrolling the display device to change the magnification level atwhich the displayable information is displayed by one of a plurality ofpredetermined magnification levels based on rotation of the wheel fromone discrete position to a next adjacent discrete position, based on therotation signal.
 5. A computer readable medium storing instructionswhich, when executed by a computer, cause the computer to perform amethod of displaying information on a display device, the methodcomprising: storing in an information store displayable information;selectively displaying the displayable information on the display devicewithin a computer generated display window having a window size at oneof a plurality of magnification levels; receiving a movement signal, ata controller, indicative of movement of a movable member movably coupledto a housing of a user input device; controlling the display device withthe controller to change the magnification level at which thedisplayable information is displayed based on the movement signal, whilemaintaining the window size of the computer generated display window,regardless of movement of a pointer on the display device; and whereinreceiving the movement signal at the controller comprises receiving themovement signal as a rotation signal indicative of rotation of a wheelrotatably coupled to an upper portion of a housing of the user inputdevice among a plurality of discrete positions.
 6. The computer readablemedium of claim 5 wherein controlling the display device with thecontroller comprises controlling the display device to change themagnification level at which the displayable information is displayed ina direction based on a direction of rotation of the wheel indicated bythe rotation signal.
 7. The computer readable medium of claim 6 whereincontrolling the display device with the controller comprises controllingthe display device to change the magnification level at which thedisplayable information is displayed by one of a plurality ofpredetermined magnification levels based on rotation of the wheel fromone discrete position to a next adjacent discrete position, based on therotation signal.